# __author__ = 'heyin'
# __date__ = '2018/11/16 15:52'
import pandas as pd
import numpy as np
import string

# 未指定index时，默认从0开始自增，类似mysql数据库自增主键
a = pd.Series(np.arange(10))
# 指定index，需要index的长度与数组的长度保持一致
b = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
# 字典数据无需指定index，字典的key是index，value是具体的值
data = {string.ascii_uppercase[i]: i for i in range(10)}
c = pd.Series(data)
# 字典数据人为指定index，如果与字典的key相同，则转换字典数据，与key不对应的index，默认以NaN填充
d = pd.Series(data, index=list(string.ascii_uppercase[5:15]))
# 可迭代对象创建
e = pd.Series(range(10))
# 列表创建
# f = pd.Series([1, 2, 3, 4], index=list(string.ascii_lowercase[:4]))
# print(f)

# 修改数据类型
# print(f.astype(np.float64))

# 索引
# 索引去单值
# print(f[0])  # 位置索引，和列表下表雷同
# print(f['d'])  # index索引，和字典通过key获取value雷同
# # 索引取多值，得到series
# print(f[[0, 1]])
# print(f[['a', 'b']])
# print(f[['a', 'e']])  # e不存在，以NaN填充
# print(f[[0, 5]])  报错，因为5这个下标不存在
# print(f[['f']])  报错 f不存在
# print(f['f'])  报错 f不存在

# 切片
# print(c[0:2])
# print(c['A':'C'])  # 相较于下标切片，他包含有C对应的value，能取到末尾
# print(c['a':'c'])  # 不存在此index，取出空series
# print(c[0:5:2])
# print(c[c > 4])  # 布尔索引，和numpy类似


# 获取series的索引和值
# print(c.index)  # 得到Index类型
# print(c.values)  # 得到ndarray类型
#
# print(c.clip(2, 5))
# print(c)

# name属性，可以设置，可以获取
c.name = 'number'
c.index.name = 'index'
print(c.name)
print(c.index.name)
print(c)

